<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:og="http://ogp.me/ns#">

<head>
	<title>Kafka 中文文档 - ApacheCN</title>
	<link rel='stylesheet' href='./css/styles.css' type='text/css'>
	<link rel='stylesheet' href='./css/syntax-highlighting.css' type='text/css'>
	<link rel="icon" type="image/gif" href="./images/apache_feather.gif">
	<meta name="robots" content="index,follow" />
	<meta name="language" content="en" />
	<meta name="keywords" content="apache kafka messaging queuing distributed stream processing">
	<meta name="description" content="Apache Kafka: A Distributed Streaming Platform.">
	<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />
	<meta name="viewport" content="initial-scale = 1.0,maximum-scale = 1.0" />
	<meta property="og:title" content="Apache Kafka" />
	<meta property="og:image" content="http://apache-kafka.org/images/apache-kafka.png" />
	<meta property="og:description" content="Apache Kafka: A Distributed Streaming Platform." />
	<meta property="og:site_name" content="Apache Kafka" />
	<meta property="og:type" content="website" />
	<link href="https://fonts.googleapis.com/css?family=Cutive+Mono|Roboto:400,700,900" rel="stylesheet">
	<script src="./js/jquery.min.js"></script>
	<script async src="./js/apachecn/googletagmanager.js"></script>
	<script>
		window.dataLayer = window.dataLayer || [];
		function gtag() { dataLayer.push(arguments); }
		gtag('js', new Date());

		gtag('config', 'UA-102475051-9');
	</script>

	<script>
		var _hmt = _hmt || [];
		(function () {
			var hm = document.createElement("script");
			hm.src = "https://hm.baidu.com/hm.js?9f2b74b80ab8aafb5970835acf96a0ea";
			var s = document.getElementsByTagName("script")[0];
			s.parentNode.insertBefore(hm, s);
		})();
	</script>

	<script>
		(function () {
			var bp = document.createElement('script');
			var curProtocol = window.location.protocol.split(':')[0];
			if (curProtocol === 'https') {
				bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
			}
			else {
				bp.src = 'http://push.zhanzhang.baidu.com/push.js';
			}
			var s = document.getElementsByTagName("script")[0];
			s.parentNode.insertBefore(bp, s);
		})();
	</script>
	<script>
		// DO NOT NEED TO UPDATE
		// Legacy versions of the documentation to not do frontend redirect for
		// These docs are written as a single super long file so no need to re-route
		var legacyDocPaths = [
			'./07/documentation',
			'./07/documentation/',
			'./08/documentation',
			'./08/documentation/',
			'./081/documentation',
			'./081/documentation/',
			'./082/documentation',
			'./082/documentation/',
			'./090/documentation',
			'./090/documentation/',
			'./0100/documentation',
			'./0100/documentation/'
		];

		// Any direct request for Streams documentation in docs versions prior to 0101
		// Redirect these requests to the standalone Streams doc page
		var currentPath = window.location.pathname;
		var shouldRedirect = !legacyDocPaths.includes(currentPath);
		var isDocumenationPage = currentPath.includes('/documentation');

		var hasNotSpecifiedFullPath = !currentPath.includes('/documentation/streams') && !currentPath.includes('/documentation/streams/');

		// Look for legacy anchors to clue us in on what full path the user needs
		// Add more as needed
		var specifiedStreamsAnchor = window.location.hash.includes('#streams_');

		if (shouldRedirect && isDocumenationPage && hasNotSpecifiedFullPath) {
			if (specifiedStreamsAnchor) {
				window.location.pathname = currentPath + 'streams';
			}
		}
	</script>
</head>
<!--#include virtual="includes/_header.htm" -->
<body>
	<div class="main">
		<div class="header">
			<a href=""><img width="325" height="97" class="logo" src="images/logo.png"></a>
		</div>

<!--#include virtual="includes/_top.htm" -->
<div class="content">
		@@include('includes/_nav.htm)
	<!--#include virtual="includes/_nav.htm" -->
	<div class="right">
		<h1>Events</h1>

		<section style="overflow:hidden;">
			<h2 style="margin-top:4rem;">Meetups</h2>
			<p>Meetups focused on Kafka and the Kafka ecosystem are currently running in the following locations:</p>

			<div style="float:left; width: 28rem;">
				<h5 style="margin-bottom:0;">North America</h5>
				<ul>
					<li><a href="https://www.meetup.com/http-kafka-apache-org/" target="_blank">Bay Area, CA</a></li>
					<li><a href="http://www.meetup.com/Apache-Kafka-San-Francisco/" target="_blank">San Francisco, CA</a></li>
					<li><a href="https://www.meetup.com/Apache-Kafka-ATL/" target="_blank">Atlanta, GA</a></li>
					<li><a href="https://www.meetup.com/Austin-Apache-Kafka-Meetup-Stream-Data-Platform/" target="_blank">Austin, TX</a></li>
					<li><a href="https://www.meetup.com/Chicago-Area-Kafka-Enthusiasts/" target="_blank">Chicago, IL</a></li>
					<li><a href="https://www.meetup.com/Front-Range-Apache-Kafka/" target="_blank">Denver, CO</a></li>
					<li><a href="https://www.meetup.com/Apache-Kafka-NYC/" target="_blank">New York, NY</a></li>
					<li><a href="https://www.meetup.com/Seattle-Apache-Kafka-Meetup/" target="_blank">Seattle, WA</a></li>
					<li><a href="https://www.meetup.com/Apache-Kafka-DC/" target="_blank">Washington, DC</a></li>
					<li><a href="https://www.meetup.com/Boston-Apache-kafka-Meetup/" target="_blank">Boston, MA</a></li>
					<li><a href="https://www.meetup.com/Minneapolis-Apache-Kafka/" target="_blank">Minneapolis, MN</a></li>
					<li><a href="https://www.meetup.com/Portland-Apache-Kafka/" target="_blank">Portland, OR</a></li>
					<li><a href="https://www.meetup.com/Apache-Kafka-Phoenix-Meetup/" target="_blank">Phoenix, AZ</a></li>
					<li><a href="https://www.meetup.com/Logger/" target="_blank">Toronto, Canada</a></li>
					<li><a href="https://www.meetup.com/Kafka-Montreal-Meetup/" target="_blank">Montréal, Canada</a></li>
				</ul>
			</div>
			<div style="float:left; width: 28rem;">
				<h5 style="margin-bottom:0;">Europe</h5>
				<ul>
					<li><a href="http://www.meetup.com/Apache-Kafka-London/" target="_blank">London, England</a></li>
					<li><a href="https://www.meetup.com/apachekafkamadrid/" target="_blank">Madrid, Spain</a></li>
					<li><a href="https://www.meetup.com/Paris-Apache-Kafka-Meetup/" target="_blank">Paris, France</a></li>
					<li><a href="https://www.meetup.com/Berlin-Apache-Kafka-Meetup-by-Confluent/" target="_blank">Berlin, Germany</a></li>
					<li><a href="https://www.meetup.com/Apache-Kafka-Germany-Munich/" target="_blank">Munich, Germany</a></li>
					<li><a href="https://www.meetup.com/Amsterdam-Apache-Kafka-Meetup/" target="_blank">Amsterdam, Netherlands</a></li>
					<li><a href="https://www.meetup.com/Kafka-Meetup-Utrecht/" target="_blank">Utrecht, Netherlands</a></li>
					<li><a href="https://www.meetup.com/Dublin-Apache-Kafka-Meetup-by-Confluent/" target="_blank">Dublin, Ireland</a></li>
					<li><a href="https://www.meetup.com/Copenhagen-Apache-Kafka-Meetup-by-Confluent/" target="_blank">Copenhagen, Denmark</a></li>
					<li><a href="https://www.meetup.com/Stockholm-Apache-Kafka-Meetup-by-Confluent/" target="_blank">Stockholm, Sweden</a></li>
					<li><a href="https://www.meetup.com/Brussels-Apache-Kafka-Meetup-by-Confluent/" target="_blank">Brussels, Belgium</a></li>
					<li><a href="https://www.meetup.com/Zurich-Apache-Kafka-Meetup-by-Confluent/" target="_blank">Z&uuml;rich, Switzerland</a></li>
					<li><a href="https://www.meetup.com/Lisbon-Apache-Kafka-Meetup-by-Confluent/" target="_blank">Lisbon, Portugal</a></li>
				</ul>
			</div>
			<div style="float:left; width: 28rem;">
				<h5 style="margin-bottom:0;">Asia</h5>
				<ul>
					<li><a href="https://www.meetup.com/Beijing-Kafka-Meetup/" target="_blank">Beijing, China</a></li>
					<li><a href="https://kafka-apache-jp.connpass.com/" target="_blank">Tokyo, Japan</a></li>
					<li><a href="https://www.meetup.com/Apache-Kafka-TLV/" target="_blank">Tel Aviv-Yafo, Israel</a></li>
				</ul>

				<h5 style="margin-bottom:0; margin-top:4rem">Australia</h5>
				<ul>
					<li><a href="http://www.meetup.com/Apache-Kafka-Sydney-Meetup/" target="_blank">Sydney, Australia</a></li>
				</ul>
			</div>
		</section>
		<section style="border-top:.1rem solid #dedede; margin-top:6rem;">
			<h2 style="margin-top:4rem;">Kafka Summit</h2>
			<p>Conference for anyone currently using or excited to learn about Kafka and real time data streaming.</p>
			<p style="margin-top:2rem;"><a class="btn btn--secondary btn--sm" href="http://kafka-summit.org" target="_blank">View times &amp; locations</a></p>
		</section>
<script>
// Show selected style on nav item
$(function() { $('.b-nav__events').addClass('selected'); });
</script>
				</div>
			</div>
		</div>
		<div class="footer">
			<div class="footer__inner">
				<div class="footer__legal">
					<span class="footer__legal__one">The contents of this website are &copy; 2016 <a href="https://www.apache.org/" target="_blank">Apache Software Foundation</a> under the terms of the <a href="https://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache License v2</a>.</span>
					<span class="footer__legal__two">Apache Kafka, Kafka, and the Kafka logo are either registered trademarks or trademarks of The Apache Software Foundation</span>
					<span class="footer__legal__three">in the United States and other countries.</span>
				</div>
				<a class="apache-feather" target="_blank" href="http://www.apache.org">
					<img width="40" src="images/feather-small.png" alt="Apache Feather">
				</a>
			</div>
		</div>
	</body>

    <script type="text/javascript" src="js/syntaxhighlighter.js"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script>
	<script>
		$(function () {
			// list of pages that are rendered with Handlebars
			var templates = [
				'introduction',
				'implementation',
				'design',
				'api',
				'configuration',
				'ops',
				'security',
				'connect',
				'streams',
				'quickstart',
				'toc',
				'upgrade',
				'content'
			];

			// loop through all Handlebar templates on the page and render them
			for(var i = 0; i < templates.length; i++) {
				var templateScript = $("#" + templates[i] + "-template").html();
				if(templateScript) {
					var template = Handlebars.compile(templateScript);
					var html = template(context);
					$(".p-" + templates[i]).html(html);
				}
			}
		});
	</script>

	<script src="js/jquery.sticky-kit.min.js"></script>
	<script>
		$(function() {
			// Set mobile scroll position on nav
			function setNavScroll(offsetLeft) {
				$('.nav-scroller').animate({
					scrollLeft: $('.nav-scroller').scrollLeft() + $('nav .selected').offset().left - offsetLeft
				}, 50);
			}

			// Helper classes for nav
			$('nav').mouseenter(function(){
				$(this).addClass('hovering');
			});
			$('nav').mouseleave(function(){
				$(this).removeClass('hovering');
			});

			// Handle expanding sections of nav (async)
			$('.b-nav__sub__anchor').click(function(){
				$('nav .selected').removeClass('selected');
				$('.nav__item__with__subs--expanded').removeClass('nav__item__with__subs--expanded');

				$(this).addClass('selected');
				$(this).parent().toggleClass('nav__item__with__subs--expanded');

				if($(window).width() <= 650) {
					window.setTimeout(function(){
						setNavScroll(30);
					}, 300);
				}
			});

			// Initialize sticky elements on the page
			if($(window).width() > 650) {
				// Nav for desktop
				$('.b-sticky-nav').stick_in_parent({offset_top: 40});
				// Documentation banner for desktop
				$('.b-sticky-doc-banner').stick_in_parent({offset_top: 0});
			}	else {
				// Scroll nav for mobile so current nav item is in view
				window.setTimeout(function(){
					setNavScroll(80);
				}, 300);
			}

			// On window resize check to see if stuff should be unstuck
			window.onresize = function(event) {
			  if($(window).width() <= 650) {
			    $('.b-sticky-nav').trigger("sticky_kit:detach");
			  } else {
			    $('.b-sticky-nav').stick_in_parent({offset_top: 40});
					$('.b-sticky-doc-banner').stick_in_parent({offset_top: 0});
			  }
			};
		});
	</script>


</html>

<!--#include virtual="includes/_footer.htm" -->
